package cn.yeamin.spring.boot.demo;

import cn.yeamin.spring.boot.service.RedisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;

/**
 * @packageName: 包名: cn.yeamin.spring.boot.demo
 * @classDesc: 类功能描述:(测试Redis存储)
 * @author: Administrator
 * @createTime: 2017/7/21 10:43
 * @version: v1.0
 * @copyright:奕明(上海)影视传媒有限公司
 */
@RestController
public class RedisController {

    @Autowired
    private RedisService redis ;

    /**
     * @methodDesc: 方法描述:(字符串操作)
     * @author: 李彤
     * @version: v1.0
     * @copyright:奕明(上海)影视传媒有限公司
     */
    @RequestMapping("/rdstr")
    public void setReids(){

        //设置string类型
        redis.setString("company", "奕明(上海)影视传媒有限公司");
        System.out.println(redis.getString("company"));
        //获取时效,默认是秒计算,-1是永久,-2是已经被删除
        System.out.println("获取时效,永久为-1:" + redis.getExpire("company"));
        //设置时效,20秒
        redis.expire("company",20, TimeUnit.SECONDS);
        try{
            Thread.sleep(15000);
        }catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("获取时效,线程睡眠15秒后时效为:" + redis.getExpire("company"));
        redis.delete("company");
        System.out.println("获取时效,删除后时效为:" + redis.getExpire("company"));
    }

    /**
     * @methodDesc: 方法描述:()
     * @author: 李彤
     * @version: v1.0
     * @copyright:奕明(上海)影视传媒有限公司
     */
    @RequestMapping("/rdhs")
    public void sethash() {
        //设置hash类型
        redis.setHashString("company","dept","技术部");
        System.out.println(redis.gethashString("company","dept"));
        System.out.println("获取时效,永久为-1:" + redis.getExpire("company"));
        redis.expire("company",20, TimeUnit.SECONDS);
    }

    /**
     * @methodDesc: 方法描述:(键相同值覆盖)
     * @author: 李彤
     * @version: v1.0
     * @copyright:奕明(上海)影视传媒有限公司
     */
    @RequestMapping("/rdoh")
    public void setoh() {
        redis.setHashString("company","dept","技术部");
        redis.setString("company", "奕明(上海)影视传媒有限公司");
    }

    @RequestMapping("/rdobj")
    public void setobj() {
        try{
            List<String> list = new ArrayList<String>();
            list.add("技术部");
            list.add("人事部");
            list.add("财务部");
            list.add("影视传媒部");
            redis.setObject("list" + list.size(),list);
            Map<String,String> map = new HashMap<String, String>();
            map.put("company", "奕明(上海)影视传媒有限公司");
            map.put("buildTime",new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
            map.put("name","彤哥哥");
            map.put("address","上海市浦东新区张江高科软件园曹宝路736弄50号");
            map.put("telephone","021-23851111");
            redis.setObject("map" + map.size(),map);
        }catch (Exception e) {
            e.printStackTrace();
        }


    }



}
